فرض کن رمز مدیریت سرور رو گم کردهای و هیچ راهی برای ورود نداری. تنها راه اینه که از طریق کنسول (یا VNC) وارد بشی و با یک ترفند ساده، رمز رو عوض کنی. توی الما ۱۰، با اضافه کردن rd.break به پارامترهای بوت، میتونی این کار رو بکنی!
AlmaLinux 10 یک توزیع مبتنی بر رد هت (RHEL) است که از systemd و GRUB 2 استفاده میکند. برای ورود به حالت تککاربره در این توزیع، از پارامتر rd.break در زمان بوت استفاده میشود.
fsck)linux یا linux16 شروع میشود (معمولاً خطی که هسته را مشخص میکند).rd.break را اضافه کنید. همچنین برای جلوگیری از مشکلات SELinux، enforcing=0 را نیز اضافه کنید.
نکته: ممکن است مسیر ریشه به صورت root=UUID=... یا root=/dev/mapper/... باشد. جای آن را عوض نکنید، فقط rd.break enforcing=0 را به انتها اضافه کنید.
۴. برای بوت شدن با این پارامترها، کلید Ctrl+X یا F10 را بزنید.
rd.break سیستم را در مرحله initramfs (قبل از mount شدن ریشه) متوقف میکند. enforcing=0 SELinux را غیرفعال میکند تا بعداً مشکلی برای لاگین نداشته باشید.
بعد از بوت، وارد یک شل محدود به نام switch_root میشوید. سیستم فایل ریشه در /sysroot Mount شده است، اما به صورت فقط خواندنی (ro). باید آن را به صورت خواندنی-نوشتنی (rw) Mount کنید:
توضیح: mount -o remount,rw سیستم فایل را از حالت فقط خواندنی به خواندنی-نوشتنی تغییر میدهد.
توضیح: chroot شما را به محیط سیستم اصلی میبرد تا بتوانید دستورات را روی آن اجرا کنید. پرامپت به sh-5.1# یا مشابه آن تغییر میکند.
chroot /sysroot را اجرا کنید. در غیر این صورت، رمز را روی محیط موقت (initramfs) تغییر میدهید که بعد از ریبوت از بین میرود.
توضیح: رمز جدید را دو بار وارد کنید.
اگر SELinux فعال باشد و رمز را عوض کنید، ممکن است بعد از ریبوت نتوانید با رمز جدید لاگین کنید. برای جلوگیری از این مشکل، دو راه دارید:
enforcing=0 را اضافه کنید (که قبلاً انجام دادیم).
touch /.autorelabel را اجرا کنید، در بوت بعدی سیستم همه فایلها را ریلبل (Relabel) میکند که ممکن است چند دقیقه طول بکشد. این کار کاملاً عادی است.
توضیح: با exit از محیط chroot خارج میشوید و با reboot -f سیستم را مجدداً راهاندازی میکنید.
rd.break enforcing=0chroot /sysroot: ✅ بلهtouch /.autorelabel (در صورت فعال بودن SELinux)init=/bin/bashchroot: ❌ خیرrd.break و chroot /sysroot استفاده میشود، اما در اوبونتو با init=/bin/bash مستقیماً وارد شل root میشوید.
| مشکل | راهحل |
|---|---|
| سیستم فایل ریشه Mount نشده است | دستور mount -o remount,rw /sysroot را اجرا کنید. |
| بعد از تغییر رمز، لاگین نمیشود | در مرحله اول enforcing=0 را اضافه کنید یا touch /.autorelabel را اجرا کنید. |
| GRUB رمز دارد و نمیتوانید ویرایش کنید | باید رمز GRUB را بدانید. در غیر این صورت، از دیسک زنده (Live CD) استفاده کنید. |
پس از reboot -f سیستم هنگ میکند |
از reboot بدون -f استفاده کنید یا سیستم را بهصورت دستی ریاستارت کنید. |
rd.break enforcing=0 → mount -o remount,rw /sysroot → chroot /sysroot → passwd root → exit → reboot -finit=/bin/bash → passwd root → reboot -fenforcing=0 یا touch /.autorelabel استفاده کنید.